/**  
* @author renbangjie renbangjie@126.com  
* @date 2014-11-8 下午12:53:48
* @version V1.0  
* <b>Copyright (c)</b> 2014医信金融信息服务（上海）有限公司-版权所有<br/>
*/
package com.yjd.comm.pay.service;

import java.util.HashMap;
import java.util.Map;

import com.yjd.comm.enums.AcctRecordType;
import com.yjd.comm.enums.VoucherEnums.RechargeStatus;
import com.yjd.comm.enums.VoucherEnums.VoucherStatus;
import com.yjd.comm.recharge.model.OrderOtherModel;
import com.yjd.comm.recharge.model.VolumeModel;

/**
 * 医界贷内部充值接口
 * @author renbangjie renbangjie@126.com
 * @date 2014-11-8 下午12:53:48
 */
public interface IYjdPayService extends IPayService<OrderOtherModel> {

	/**
	 * 充值券、理财金充值
	* @param voucherNo 券码
	* @return OrderModel
	 * @throws Exception 
	 */
	public RechargeStatus voucherRecharge(String voucherNo, Long idUser) throws Exception;
	
	/**
	 * 重写充值券理财金的方法
	* @param volumeModel
	* @param idUser
	* @return RechargeStatus
	 * @throws Exception 
	 */
	public RechargeStatus voucherRecharge(VolumeModel volumeModel, Long idUser) throws Exception;
	
	/**
	 * 根据用户已有的充值券充值
	* @param volumeModel
	* @return
	* @throws Exception
	* RechargeStatus
	 */
	public RechargeStatus voucherRecharge(VolumeModel volumeModel) throws Exception;
	
	/**
	 * 线下充值
	* @param vipid 充值用户
	* @param amount 充值金额
	* @param event 活动
	* @param memo 备注
	* @return OrderModel
	 * @throws Exception 
	 */
	public RechargeStatus offlineRecharge(Long vipid, Double amount, Long event, AcctRecordType reType, String memo) throws Exception;
	
	/**
	 * 根据交易流水解析订单id
	* @param transID 流水号
	* @return Long 订单号
	 * @throws Exception 
	 */
	public Long getOrderIdByTransID(String transID) throws Exception;
	
	/**
	 * 
	* 判断用户是否使用过该活动的充值券
	* @param idUser
	* @param event_id
	* @return
	* @throws Exception
	 */
	public boolean activated(Long idUser, Integer event_id) throws Exception;
	
}
